package main

import "fmt"

func main() {
	// append(T type, ele....) T type
	var slice []int = []int{1, 2, 3}
	slice = append(slice, 4)
	fmt.Println(slice) // [1 2 3 4]

	slice = append(slice, 5, 6, 7, 8)
	fmt.Println(slice) // [1 2 3 4 5 6 7 8]

	// append 一个切片
	slice2 := append(slice, slice...)
	fmt.Println(slice2) // [1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8]
	fmt.Println(cap(slice2))
	fmt.Println(len(slice2))

	// copy
	slice3 := make([]int, 20)
	copy(slice3, slice2)

	fmt.Println(slice3) // [1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 0 0 0 0]
	slice3[0] = 100

	fmt.Println(slice2[0]) // 1
}
